A job scheduler is often used in single system or distributed computing environments to schedule jobs to run using the resources of the computing environment. A simple way to schedule jobs is to let all jobs share all of the computing resources. However, sometimes there is a need to let different sets of jobs use different subsets of the resources. A common way to group jobs is to divide jobs into job classes. An existing way to let jobs in each job class to use a different subset of the computing resources is to specify for each computing resource a list of job classes whose jobs are allowed to use the resource.
For example, in a distributed cluster, one can specify that machine 1 allows job class A and B and machine 2 allows job class B and C, etc. For a more detailed discussion of implementing job class lists and their allowed resources see “Tivoli Workload Scheduler LoadLeveler Using and Administering”, Version 3 Release 4, which is hereby incorporated by reference in its entirety. The above job scheduling method works fine when the number of resource identities, for example machines in a distributed cluster, is relatively small. However, when there are numerous resource identities in a computing system, the above method becomes difficult to use because it is cumbersome to make so many entries in so many different places.
Therefore a need exists to overcome the problems with the prior art as discussed above.